特定の AWS サービスアクションを許可する IAM ポリシーを探す方法を教えてください
困っていた内容
AWS アカウント内で、特定のアクション(ec2:RunInstances
)を許可する IAM ポリシーを確認したいです。
マネジメントコンソールからひとつひとつポリシーを確認するのは現実的ではないため、AWS CLI などで手間を省きたいです。
利用できそうな AWS CLI コマンドがあれば教えてください。
どう対応すればいいの?
get-account-authorization-detailsコマンドを実行してください。
# コマンド例
$ aws iam get-account-authorization-details
# 実行例
$ aws iam get-account-authorization-details
{
"UserDetailList": [
{
"Path": "/",
"UserName": "hato",
"UserId": "AIDAJQABLZS4A3QDU576Q",
"Arn": "arn:aws:iam::123456789012:user/hato",
"CreateDate": "2020-10-10T20:20:20+00:00",
"GroupList": [
...
get-account-authorization-details コマンドは、AWS アカウント内のすべての IAM ユーザー、グループ、ロール、ポリシーを取得するコマンドで、IAM ユーザーに設定したインラインポリシーも取得できます。
そのため、get-account-authorization-details コマンドで一覧を取得して、grep コマンドなどで対象アクションを含むポリシーを検索してください。
※アクションは大文字/小文字を区別しないためご注意ください。
なお、アカウント内のリソース状況によっては、get-account-authorization-details コマンドの実行に時間を要することがあります。
また、2024年9月時点の挙動として、AWS 管理ポリシーに関しては IAM ユーザ等にアタッチされたものだけが取得されますのでご注意ください。
参考資料
get-account-authorization-details コマンドは、AWS アカウント内のすべての IAM ユーザー、グループ、ロール、ポリシーに関する情報を返します。
プレフィックスとアクション名には、大文字と小文字の区別がありません。